JS - Objecten - Beschrijving
string
, number
en boolean
- over van Object
. Object
is een hash, ook wel associatieve array genoemd, een verzameling van eigenschappen die een sleutel van om het even wel gegevenstype kan bevatten en een waarde die ook van om het even wel gegevenstype kan zijn.Arrays zijn een speciaal soort objecten
Een array is een lijst van waarden. Elke waarde heeft een index, een numerieke sleutel, die begint met 0 en met 1 vermeerderd wordt voor elke waarde. We zitten hier heel ver van de manier waarop arrays geïmplementeerd worden in talen als C en C++. En het is dat verschil die het mogelijk maakt van de overgang naar objecten te maken. Als je dat bekijkt vanuit het standpunt van C en C++ is helemaal chinees.
Een array is een lijst van waarden. Elke waarde heeft een index, een numerieke sleutel, die begint met 0 en met 1 vermeerderd wordt voor elke waarde. We zitten hier heel ver van de manier waarop arrays geïmplementeerd worden in talen als C en C++. En het is dat verschil die het mogelijk maakt van de overgang naar objecten te maken. Als je dat bekijkt vanuit het standpunt van C en C++ is helemaal chinees.
var my_array = ['appel', 'peer', 'sinaasappel', 'ananas', 'citroen', 'mango'];
Je kan een JavaScript array voorstellen als een tabel. In de eerste kolom staat de sleutel, namelijk de index, en in de tweede kolom staat de waarde:
Sleutel | Waarde |
0 | appel |
1 | peer |
2 | sinaasappel |
3 | ananas |
4 | citroen |
5 | mango |
Associatieve arrays zijn geen arrays maar gewone objecten
Een object gelijkt op een array, met verschil dat je de sleutels zelf kan bepalen. Je bent niet beperkt tot het gebruik van getallen, je kan meer betekenisvolle namen gebruiken als voornaam, familienaam, postcode, straat enz.
We beginnen met een eenvoudig voorbeeld:
var persoon = []; persoon['voornaam'] = 'Jef'; persoon['familienaam'] = 'Inghelbrecht'; persoon['straat'] = 'Rue des Blancs Manteaux 38'; persoon['postcode'] = '75001'; persoon['geslacht'] = 'man';
Let erop dat als je een associatieve array maakt, je geen gebruik meer kunt maken van de standaard array methoden en eigenschappen.
var x = persoon.length // retourneert 0 var y = persoon[0] // retourneert undefined
In het volgend voorbeeld gebruiken we de declaratieve manier om een associatieve array te maken:
var persoon = { voornaam: 'Jef', familienaam: 'Inghelbrecht', straat: 'Rue des Blancs Manteaux 38', stad: 'Paris', postcode: '75001', geslacht: 'man' };
Sleutel | Waarde |
voornaam | Jef |
familienaam | Inghelbrecht |
straat | Rue des Blancs Manteaux 38 |
stad | Parijs |
postcode | 75001 |
geslacht | man |
Het zou veel eenvoudiger zijn om de technisch juiste termen te blijven gebruiken. Een object in JavaScript bestaat niet, het is een associatieve array die, om mee te doen aan de OO mode, een object genoemd wordt.
In bepaalde programmeertalen wordt een onderscheid gemaakt tussen:
- een geïndexeerde array;
- een associatieve array, ook wel een hash of een woordenboek (dictionary) genoemd, de sleutels zijn geen getallen maar strings;
In JavaScript worden array's gebruikt om geïndexeerde array's voor te stellen en objecten om associatieve array's voor te stellen.
Bronnen
MDN, Introduction to Object-Oriented JavaScript, 15/09/2016
W3schools.com, JavaScript Objects